Commercial and military systems today are largely software based and growing in complexity. However, despite advances in development practices and tools, the goals of accelerating the rate at which systems can be delivered and reducing their costs cannot be met by simply writing software faster. Delivering faster, cheaper, and higher quality software will be met with comparable improvements in the practices and tools for automated testing and analysis. Oftentimes, the testing procedures are time-consuming and burdensome. For example, one change for a certain discrete function may affect many other functions of a system, and thereby requiring testing of not just the discrete function but of all the other functions. Thus, considerably time and effort are needed by trained individuals to properly test complex software systems.
The costs of inadequate software testing are staggering. Recent reports estimate the economic costs of faulty software in the U.S. to range in the tens of billions of dollars per year and have been estimated to represent approximately just under 1 percent of the nation's gross domestic product (GDP). Based on the software developer and user surveys, the national annual costs of an inadequate infrastructure for software testing is estimated to range in the billions.
Because software complexity has increased exponentially, manual software testing simply has not kept pace with the software technologies being developed.
Other drawbacks may also be present.